Storage and retrieval of location based information in a distributed network of data storage devices

ABSTRACT

A method of storing and/or retrieving location-based information comprises: storing, in a distributed network of data storage devices accessible simultaneously from a plurality of remote user terminals, data defining a plurality of first localities in relation to which information storage is accessible, and selecting ones of the first localities to represent second localities for which information is to be stored and/or retrieved such that i) the first and second localities bear a predetermined locational relationship, and ii) the first and second localities bear a predetermined relationship in size.

BACKGROUND

1. Technical Field

This invention relates to the location-dependent storage and retrievalof information. The invention also relates to apparatus and methods fortransmitting information to mobile and roaming users in atelecommunications system.

2. Description of Related Art

In conventional telecommunications, a given user is associated with agiven telecommunications terminal (e.g. a conventional telephone, or acomputer with a modem, or a facsimile unit). However, more recently,users have become mobile. In addition to mobile telephones (for exampledigital cellular telephones such as those conforming to the GSMstandard) other types of portable terminal include pagers (either tonepagers or message pagers which can receive short textual messages anddisplay them); so called “personal digital assistants” (PDA's) andportable facsimile or computer units adapted to communicate via cellularnetworks using dedicated modems. Users may also move to and from fixedterminals.

At the same time, the volume and types of formats of information whichcan be transmitted is increasing, and new, so called “multi-media”formats, consisting of single sets of information presented in multiplemedia (such as for example image, text and audio files) are enteringuse. An increasing volume of such information is available via the WorldWide Web (“the Web”).

The telecommunications channels through which information is deliveredcomprise channels of varying bandwidth, including optical fibre links;coaxial copper links; conventional subscriber telephone lines; infra-redlocal area networks; and radio frequency channels. Of these, radiofrequency channels especially are used for mobile communications,although in certain areas infra red links are possible. However, radiofrequency channels which are used in mobile communications generallyhave available the lowest bandwidth due to demands on the RF spectrumand to the channel conditions within the RF spectrum. Thus the amount ofinformation which a mobile user on a radio frequency link can currentlyreceive and select from is relatively limited.

European patent application EP-A-0718784 describes a system forretrieving information based on a user-defined profile. A server actingon behalf of the client identifies information on the basis of theuser-defined profile, to generate a personalised newspaper which isdelivered to the user. This provides for an automatic sorting of thelarge volume of data available on the World Wide Web to generate asubset of the information available which is tailored to a usersspecific interest. However, the system is only used for providing apersonalised newspaper delivered in electronic form to a static user.

International patent publication No WO94/30023 describes a GSMtelecommunications system whereby data records may be downloaded ontosubscriber identity modules in the system by broadcasting the data to asubscriber. The distribution of messages to subscriber identity modulesin a specific area is possible, for example for advertising purposes.However, only a limited amount of data can be broadcast in such a mannerfor storage on the subscriber identity modules.

International patent publication No W093/01665 describes atelecommunications system in which mobile users are able to receivelocalised information data from base stations in the system. Each basestation is provided with a localised information database, containinginformation pertaining to the local area, which can be received by amobile user being served by the base station on request. The user isable to download selected portions of the information contained in thelocalised information database by stating selections on a mobileterminal. However, the amount of information available to the user islimited to that stored in the localised information database.furthermore, all mobile users in a cell receive the same information,and the information is localised only to the extent that the basestations are separated.

International patent publication no. WO96/07110 describes a navigationinformation system whereby route guidance information, or possibly otherlocality-dependent information, may be provided to a user of a cellulartelephone network. The user, on requesting service, identifies adestination, which a server specifically allocated to that user uses toformulate a route. The cellular telephone of the user automaticallysignals tracking information to the server as the user travels. When theuser's position falls within predefined “overlay areas”, messagesdirecting the user along the route are automatically generated andtransmitted the cellular telephone of the user. This document describesthe possibility of providing other locality-dependent information, suchas information about local facilities, tourist attractions, weatherforecasts and public transport information.

Our earlier international application PCT/GB96/00252, published 15 Aug.1996, describes a multimedia telecommunications system employingreconfigurable agents. Aspects of this document are incorporated hereinby reference.

Our earlier international application PCT/GB97/00890, published 9 Oct.1997, describes a telecommunication system in which a user is tracked,and the identity of a terminal which he may at any time be using isstored. The capabilities (i.e. formats in which signals can be acceptedand/or output) of terminal equipment in the vicinity of the user isstored. Therefore, rather than attempting (unsuccessfully) to deliver ahigh bandwidth signal to a low bandwidth mobile terminal, the systemdirects the signal to a nearby terminal which can support a betterrepresentation of the signal. The nearby terminal may accept and outputthe signal in its original form, or the network may convert the signalto a different format which can be accepted by the nearby terminal.

Our earlier international application PCT/GB98/01056, published 22 Oct.1998, describes a telecommunications system in which a locationdirectory stores location-dependent data identifying information sourceswhich are associated with individually defined localities. The data isaccessed by a personal agent which filters the data using preferencedata and presents a shortlist of information sources which are relevantin the locality of the user.

A paper entitled Knowledge and Location, Isabel Novoa, Mark Wilby,presented at International Joint Conference on Artificial Intelligence,Montreal, 1995, describes a model for the management of information in adistributed environment. The model proposed is a flexible addressingsystem based on a tree-like nodal network, representing a distributeddatabase. In order to locate information within the database, routinginformation is provided by nodes within the network. If a node receivesa request for routing information, it first checks a database local tothe node to determine whether the requested information is present. Ifnot, the request is passed to a parent of the node. If the informationis present, the routing request may be passed to a destination childnode whereby eventually the address required is found. The system isimplemented in order to allow disassociation between the address of amobile user, and the routing information whereby the address may beaccessed.

BRIEF SUMMARY

In accordance with one aspect of the invention there is provided amethod of storing and/or retrieving location-based information, themethod comprising:

storing, in a distributed network of data storage devices accessiblesimultaneously from a plurality of remote user terminals, data defininga plurality of first localities in relation to which information storageis accessible; and

selecting ones of said first localities to represent second localitiesfor which information is to be stored and/or retrieved such that:

i) said first and second localities bear a predetermined locationalrelationship; and

ii) said first and second localities bear a predetermined relationshipin size.

This aspect allows the level of generality of information being storedand/or retrieved, by means of the accessible information storage, to beappropriate to the second localities. The second localities may on theone hand be a locality of interest, where information is to beretrieved, or on the other hand, a locality of pertinence, where theinformation is to be stored.

In accordance with a further aspect of the invention there is provided amethod of storing location-based information, the method comprising:

defining, in a distributed network of data storage devices accessiblesimultaneously from a plurality of user terminals, a plurality of dataaccess nodes each of which is responsible for a predefined locality,said plurality of nodes including a higher level node responsible for alarger locality and lower level nodes responsible for smaller localitieswhich overlap said larger locality,

indexing references to information sources containing locality-specificinformation at said data access nodes, different information sourcereferences being indexed at said higher level node than at said lowerlevel nodes; and

transmitting said references from said data access nodes on request.

In accordance with a yet further aspect of the invention there isprovided a method of storing location-based information, the methodcomprising:

defining, in a distributed network of data storage devices accessiblesimultaneously from a plurality of user terminals, a plurality of dataaccess nodes each of which are responsible for a predefined locality;

indexing references to information sources containing locality-specificinformation at said data access nodes, one or more of such referencesbeing repeatedly indexed at different of said nodes; and

transmitting said references from said data access nodes on request.

With different information source references indexed at higher levelnodes than at lower level nodes, different references may be accessed independence on the locational generality of the information required.

With information source references repeatedly indexed at different ofthe nodes, it is possible to ensure that information sources of a givenlocality of pertinence are appropriately indexed in relation to variousfixed levels and/or localities.

In accordance with a further aspect of the invention there is provided amethod of retrieving information for presentation to a user, the methodcomprising:

defining a locality of interest to the user in dependence on both alocation of the user and a speed of travel of the user; and

selecting, in a distributed network of data storage devices accessiblesimultaneously from a plurality of user terminals, information sourcesfrom which locality-specific information may be retrieved, on the basisof the defined locality of interest.

By taking into account the speed of travel of the user in defining thelocality of interest when selecting information sources, it is possibleto prevent the user being overwhelmed with large quantities ofinformation when travelling at a relatively high speed, whilst providingthe user with sufficient specificity of information when stationary ortravelling at a low speed.

Furthermore, relatively remote locations of interest which are predictedto be of interest to the user on the basis of the user's speed may beincluded in the locality of interest.

BRIEF DESCRIPTION OF THE DRAWINGS

Further aspects, features and advantages of the present invention willbe apparent from the following description of preferred embodiments ofthe invention, which is by way of example only and which refers to theaccompanying drawings, in which:

FIG. 1 is a schematic diagram illustrating the physical, or transport,layer of a telecommunications system;

FIG. 2 is a schematic diagram illustrating the system architecture forcontrol components used in an apparatus of the present invention;

FIG. 3 is a flow diagram illustrating the creation of an indexingnetwork in accordance with the present invention;

FIGS. 4A, 5A and 6A illustrate an indexing network in creation;

FIGS. 4B, 5B and 6B illustrate localities of responsibilitycorresponding with the indexing nodes illustrated in FIGS. 4A, 5A and6A;

FIGS. 7 to 10, 12 and 13 are flow diagrams illustrating functionalityprovided at individual nodes of the indexing network in accordance withthe present invention; and

FIG. 11 is a schematic drawing illustrating the routing of agent-findingrequests within the indexing network of the present invention.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Referring to FIG. 1, at the physical or bearer level thetelecommunications environment of a user U1 in a particular localitycomprises a cellular telephone, or a personal digital assistant, T1which may include a Global Positioning System Receiver and which iscarried by the user; a facsimile apparatus T2 and conventional telephoneT3; and a computer workstation T4.

The various terminals T1-T4 are each capable of receiving differentsignal formats, as follows:

T1—voice or low bit rate data.

T2—facsimile image signals.

T3—narrow bandwidth audio.

T4—high bit rate data in various formats or any of the above.

In communication with the various terminals are a number of differentcommunications channels forming parts of different notional networks(although some or all may be commonly owned).

A public land mobile network (PLMN) (e.g. a GSM—compatible digitalcellular network) N1 is connected via a base station B1 of the PLMN anda radio interface to terminal T1. The base station B1 provides a cell inthe environment of the area within which the user U1 is located.

A public switched telephone network (PSTN) N2 is connected via a localline to terminal T3, and via a local line to terminal T4.

A local area network (LAN) N3, including a LAN server is connected via adata link to terminal T3. Further terminals (not shown) at differentdistances from the user are also connected in the LAN.

The user U1 carries an identifying device interacting with a locationupdate device via which his position within the telecommunicationsenvironment may be tracked. For example, in this embodiment theidentifying device comprises a chip carrying card or “smart card”carrying data identifying the user, and some or all of the terminalsT1-T4 carrying a location update device in the form of a card readerarranged to read the card. Alternatively, it could comprise a ‘smartbadge’ transponder, the location of which is tracked automatically.

Specifically, the terminals T1-T4 may carry such smart card readers tosignal tracking information via the networks to which they areconnected. Additional smart card readers are installed at access pointsto a building or area, and are connected, for example to the LAN N3, tosignal a user's location.

Further, preferably, the terminal T1 comprises, in addition to cellphonecommunicating components, a location update device in the form of aglobal positioning system (GPS) receiver and is arranged to derive andsignal its position, speed and direction from a GPS satellite S1periodically as disclosed in EP 0467651 (Motorola). Alternatively, thecellphone T1 could perform positioning additionally using a land-basedpositioning signal, such as by differential GPS positioning, or purelyusing land-based positioning signals, such as differential GSMtriangulation signals as described in WO 96/35306 (Telecom Securicor).The terminal T1 signals the user's location, speed and direction viaPLMN N1.

Thus, the position of the user U1 is signalled by one or more of severalmeans; firstly, it may be signalled from the terminal at which he haslogged in, for example by password and/or by the insertion of his smartcard; secondly, his geographical position may be signalled from apositioning signal receiver; and thirdly, his position within a buildingor area may be signalled from the access system. His speed and directionmay also be signalled from the positioning signal receiver.Alternatively, the user can communicate his location by calling using T1or T2, in which case he may be identified by Calling Line Identity(CLI).

Each of the networks N1-N3 is connected, via gateways G1-G3respectively, to a wide area network (WAN), such as the Internet,consisting of packet switches PS interconnected by high speed datalinks, such as asynchronous transfer mode (ATM) links.

The WAN provides connections, via the packet switches PS, to distributedinformation servers, such as Web servers WS, containing multi-mediainformation sources, such as Web pages. The WAN also provides access todistributed processing environment (DPE) Servers DS, which are connectedto and distributed between the packet switches PS of the WAN.

The DPE Servers DS provide a distributed processing environment (DPE)which supports the interaction of software objects. The communicationbetween the objects may be handled by object request brokers (ORBs),such as provided by the object management group's common object requestbroker architecture (CORBA). Furthermore, the DPE Servers DS provide forpersistent storage of the software objects held therein. This may beprovided for example by ObjectStore's PSE (persistent storage engine)PRO (trademark).

Each of the DPE Servers DS stores intelligent software agents, asdiscussed in further detail below.

For the reasons described in the above referenced prior art, it isadvantageous to employ a so called “agent based” control mechanism. Theterm “agent” has in the past been used with a number of differentsenses; here, except where the context makes it clear that this isunnecessarily limiting, it will be understood to mean an independentlyexecuting control program under control of which a computer or computercontrolled switching centre performs the functions attributed to the“agent”. The term is not necessarily limited to control programs whichmonitor their environment and adapt their behaviour and responsethereto, but encompasses such programs.

Each agent makes use of data, and it is convenient that the agentsshould therefore operate in “object-oriented” fashion; that is to say,that the data should be “encapsulated” so as to be accessible andalterable only by associated control programs, acting in response to“messages” (which need not, however, be physically transmitted but couldsimply be data passed via the stack of a single computer). The agentsare embodied by a mobile agent software system, such as IBM's “Aglets”(trademark) system, ObjectSpace's “Voyager” (trademark) system orsuchlike. A discussion of mobile agents may also be found in “MobileAgents”, Lecture Notes in Computer Science, Rothermal K. Popescu-ZeletinEds., First Int. Workshop, MA '97, Berlin, April 1997.

Being mobile, the agents are able to access information either remotely,via the data links described, or locally, by moving themselves to thelocation of the information.

It will, however, be understood that the use of mobile agents and theobject oriented format is inessential to the invention.

Referring to FIG. 2, the software architecture of the system includes alocation updater object class 2, a terminal agent object class 4, apersonal agent object class 6, an information agent object class 8 and alocation index object class 10.

Each user in the system has a personal agent operating in the system onits behalf. Each information source in the system has at least oneinformation agent operating in the system on its behalf. Each locationupdate device in the system has a location updater object operating inthe system on its behalf and to which its location updating signals aretransmitted. Each terminal in the system has a terminal agent operatingin the system on its behalf through which the terminal interacts withthe distributed processing environment. Finally, a location indexingnetwork has location index objects operating on its behalf.

Each agent and each of the location index objects includes a softwarecode which is stored in the system. The relative locations of the agentswithin the system is not critical, since the agents are accessible bymeans of the networks N1-N3. However, in an advantageous arrangement, atleast some of the terminal agents 4 may be located on the respectiveterminals they represent and the location updaters may be held on a DPEserver DS at the point of receipt of the location updating informationsent via one of the networks N1-N3. The personal agents 6 andinformation agents 8 may be located on DPE servers holding therespective nodes of the location index with which they are interacting,as will be described in further detail below.

Each personal agent has data storage attributes for storing thefollowing data:

1. Its user's preference data, including preferred categories of data tobe accessed, age, gender, state of health, friends, interests, languagepreferences, information format type preferences, dynamic updatepreferences, location-based preferences, time/date-based preferences,cost limits on information retrieval, wildcard key words, etc.

2. An item details list detailing information sources, terminalsoffering service and users present in the current locality of the user.

3. A shortlist of selected item details already presented to the user.

4. System addresses of the user's personal terminals.

5. The identity of the terminal currently being used by the user.

6. The current location of the user.

7. The speed and direction in which the user is currently travelling.

8. An alternative location of interest to the user.

9. A selection algorithm for filtering information by reference to theuser's preference data.

The personal agent 6 interfaces with each of the location index,information agents 8, terminal agents 4 and location updater 2 as willbe described below.

The information agent has data storage attributes for storing an itemdetails object for the information source, to be described furtherbelow.

The terminal agent 4 has attributes for containing the following data:

1. The system address of the terminal.

2. The system address of the personal agent of the current terminaluser.

3. A shortlist of item details sent to the terminal by the currentpersonal agent.

4. The system address of the currently selected information source, ifany.

5. An item details object for the terminal, to be described in furtherdetail below.

6. A list of allowable input and output file formats.

7. A list of file format translations which the terminal agent supports.

The location updater 2 has data storage attributes for containing thefollowing data:

1. The current location, and speed and direction if appropriate, of thecorresponding location update device, such as the GPS receiver.

2. The identities of users, and the system addresses of their personalagents, being serviced by the location updater (multiple users if thelocation update device is fixed, single user if the location updatedevice is mobile).

Each location index object derived from the location index object class10 forms a node of an indexing network, interconnected with relatednodes of the indexing network.

Each node of the index has a locality index for storing item detailsobjects to be indexed on a locality basis, and a name index for storingitem details objects and pointers to item details objects to be indexedby the name of the agent concerned. In addition, each node is providedwith the following set and stored attributes:

1. A locality of responsibility (LOR), specified in the form ofCartesian coordinates for its centre and parameters defining its sizeand shape.

2. A predefined level within the indexing network. The indexing networkincludes a root node at level 1, responsible for a large locality, andsubnodes at levels 2 and above, responsible for localities which formsub-localities of that of the root node, and that of nodes above theirlevel in the indexing network. It is to be noted that, herein, “higher”level nodes have numerical designations which are smaller than that of“lower” level nodes.

3. References to nodes to which the node is related in the network,including one or more of parent nodes, children nodes, sibling nodes,uncle nodes, nephew nodes and cousin nodes.

Location index objects having different, and in particular spaced,localities of responsibility are stored on different of the DPE serversDS to allow very large scale scalability, by having a large number ofDPE servers each handling a fraction of the data storage and retrievaloperations of the system.

In order to create, or alter, an indexing network, new nodes are createdat a particular level, and their attributes are set in accordance withdata specified by a party responsible for the indexing network itself,as illustrated in FIG. 3.

As a first step, the new nodes are instantiated, step 100. The new nodesare then defined within the indexing network by setting their localityof responsibility (LOR), step 102, setting their level within thenetwork, step 104, and setting the relationships of the new node andsetting references to the new node in the previously existing nodes inaccordance with their relationship within the network, step 106. Therelationships are set by a new node querying its parent for the variousadjacent relations which include contenders for relations of the newnode. The LORs of the nodes returned by the parent are analysed by thenew node in order to decide whether to connect to them, in which casethe new node stores the adjacent node in its relations database. It alsoinforms the related node of its presence in order to establishreciprocal connections.

An indexing node network is constructed by functionality provided in thelocation index object class by use of the following rules set:

1. If no tree currently exists, create a root node at level 1, byinstantiating an instance of the location index object class.

2. If a node has a LOR which is itself insufficiently small for certainlocation-specific information, or if the node has a current processingload which exceeds a set threshold, create one or more nodes which areresponsible for sub-localities of the locality for which that particularnode, referred to herein as the splitting node, is responsible. If aplurality of new nodes which are adjacent are created, interconnect thenew nodes via a sibling relationship, with the splitting node as theirparent. Set each new node within the indexing network to the level oftheir parent, plus 1.

3. If the splitting node has siblings or cousins, compare each new childnode with the splitting node's siblings and cousins. If the localitiesof responsibility by the two nodes being compared are adjacent, createan uncle/nephew link between them. Set the depth of the relationship,being the comparative levels of the nodes, to 1.

4. If the splitting node has one or more uncles, compare each new childnode with each of the splitting node's uncles. If the localities ofresponsibility covered by the two nodes being compared are adjacent,create an uncle/nephew link between them. Set the depth of the linkequal to the depth of the matching uncle relationship, plus 1. Theserelated nodes are referred to herein as great-uncles.

5. If the splitting node has one or more nephews with depths N whereN>1, being a great-uncle/nephew relationship, compare the locality ofresponsibility set for each new child node with that of the splittingnode's nephews. If the two nodes are adjacent, set an uncle/nephew linkbetween them with a depth of N−1.

6. If the splitting node has one or more nephews with depth 1, comparethe locality of responsibility of each new child node with that of eachof the splitting node's nephews. If the areas covered by the two nodesare adjacent, create a cousin link between them.

The operation of these rules is illustrated with reference to FIGS. 4 to6.

Referring to FIG. 4A, which illustrates an indexing network at an earlystage in creation, the indexing network includes a root node 110 whichhas a locality of responsibility corresponding to the entiregeographical coverage of the indexing network, illustrated in FIG. 4B asouter rectangle 112. The network level of the root node 110 is 1. Theroot node 110 only has children relationships.

The child no des 114 each have a locality of responsibility which formsa subset of the locality of responsibility of the root node 110,illustrated by inner rectangles 116A, 116B, 116C, 116D in FIG. 4B. Thechild nodes are created using rule 2 described above applied to the rootnode 110.

Referring to FIG. 5A, one of the child nodes 114D may be split toprovide further child nodes 118A-D, which are grandchildren of the rootnode 110. The new child nodes 118A-D have localities of responsibilitywhich form sub-localities 120A-D of the locality of responsibility 116Dof their immediate parent node 114D, and consequently also formsub-localities of the locality of responsibility 112 of the higher levelnode 110.

The relationships of the new nodes 118A-D are set by defining siblingrelationships between each of the new nodes 118A-D, parent/childrelationships with the parent node 114D, and, where the localities ofresponsibility 120A-D of the new nodes 118A-D are adjacent to thelocalities of responsibility of higher nodes in the network,uncle/nephew relations are set by references to those higher level nodes114A-C. These uncle/nephew relationships are set in accordance with rule3 above.

Referring to FIGS. 6A and 6B, a node 114C adjacent to the previouslysplit node 114D may also be split to produce four new children nodes118E-H. These new children nodes have localities of responsibility whichare set to be sub-localities of the locality of responsibility 116C oftheir immediate parent node 114C. Their level in the network is set at3, in accordance with rule 2 above. Their relationships within theindexing network include parent/child relationships with the parent node114C, uncle/nephew relationships with nodes 114A, B D at the same levelas their parent node 114C and sibling relationships between each of thenew nodes 118E-H. In addition, the new nodes 118E-H which havelocalities of responsibility 120E, 120F, 120G, 120H which adjoin thelocalities of responsibility of the previously created nodes 118A, C atthe same level are defined to have cousin relationships with thosepreviously created nodes, in accordance with rule 6 above.

In each of FIGS. 4A, 5A and 6A, parent/child relationships areillustrated with bold, solid, arrowed lines. Sibling relationships areillustrated with solid, arrowed lines. Uncle/nephew relationships areillustrated with closely spaced dashed, arrowed lines. Cousinrelationships are illustrated with spaced dashed, arrowed lines.

FIGS. 4 to 6 illustrate the principle of construction, and the divisionof the localities of responsibility of an indexing network, by means ofnodes at a plurality of levels below the root node level. As the networkis increased further in depth, the localities of responsibility fornodes defined at each next lower level becoming progressively smaller,such that the indexed information, to be described below, at each nodebecomes increasingly location-specific. This structure allows agentsinteracting with the indexing network to index information at a certainlevel of location specificity, and to obtain information at a certainlevel of location specificity, to thereby provide a level of detailappropriate to the information storage act or information retrieval actbeing performed.

It is to be understood that the rectangular localities of responsibilityillustrated in FIGS. 4B, 5B and 6B are examples only. The localities maybe defined as other two dimensional shapes, and may also be defined asthree dimensional volumes. The node splitting procedures may also havedifferent, or variable, cardinalities.

FIG. 7 is a flow chart illustrating the functionality provided at eachnode, by the location index object class, for allowing informationagents to index location-specific data in the nodal network.

Each information source has a node in the indexing network with whichthe information agent is set to interact, referred to herein as agateway node. In order to index an information source for which theinformation agent is acting, the information agent transmits anadvertise-in-locality request to its gateway node, passing across itsitem details object with the advertise request.

The item details object held in an information agent includes:

1. The gateway node at which the information agent is currently set tocommunicate with the indexing network.

2. The name of the information source.

3. Data specifying a locality of pertinence (LOP) of the informationheld on the information source for which the information agent isacting. The locality is specified in the form of Cartesian coordinatesand parameters defining its size and shape.

4. Meta-information concerning the information stored in the informationsource, including a list of the files contained in the informationsource, format identifiers (for example Multipurpose Internet MultimediaExtension (MIME) records), the sizes of the files, the language (forexample English) of a text file, encoding identifiers, a best beforedate and a priority indication indicating the relative importance of therespective files in the information source.

5. The system address of the information source. In the case of aninformation source in the form of a Web page, this consists of a UniformResource Locator (URL).

When an advertise-in-locality request is received, by a node, step 200,the node applies a heuristic function method to the LOP in the passeditem details object, to determine whether the LOP intersects with itslocality of responsibility of the node, step 202. If there is nointersection, the node passes the request, along with the item detailsobject, to its parent node, step 204.

If the LOP and the LOR are found to intersect, the node proceeds toapply a further heuristic function to determine whether the LOP of theinformation source and the LOR of the node are similar in size, step206. Here, “similar in size” includes a range of similarity in size,which is dependent primarily on the interval in size between the LORs ofnodes at different levels in the indexing network. For example thesimilarity function may be arranged such that the size of the LOP mayrange from midway between the size of the node's LOR and the size of theLOR of the parent node down to midway between the size of the node's LORand the size of the LOR of the child node of the node in question inorder for the LOP and LOR to be considered similar in size. Thus, wherechild nodes are formed by quartering in an indexing network, the rangein size for which the information source's LOP is considered to besimilar in size to that of the node's LOR could range from of the orderof twice the size of the LOR down to of the order of half of the size ofthe LOR.

If the LOP is found not to be similar in size in accordance with thesimilarity function applied, it is determined whether the LOR issignificantly larger, step 208. If so, the advertise request, along withthe item details object, is passed to each of the node's children whichhave an LOR intersecting with the LOP of the request, step 210. If nochildren currently exist for the node, the items details are indexed atthe current node, to be passed down if the node subsequently divides.

Otherwise, the request is passed to the parent of the node, step 212. Asthe parent node has a locality of responsibility which includes that ofthe upwardly passing node, the parent node, or other parent nodes higherup in the indexing network will be able to accept theadvertise-in-locality request.

If in step 206 the locality of pertinence and the locality of relevanceare found to be similar in size by the node receiving the advertiserequest, the node places the item details object in its locality index,to be stored for future retrieval by personal agents interacting withthe indexing network, step 214.

The item details object for an information source contains an attributewhich specifies a propagation characteristic of the information. Namely,this propagation attribute specifies whether the advertise request is tobe propagated to a level below the level at which the LOP and LOR aresimilar in size, and if so, the number of levels to which the itemdetails are to be propagated. Thus, the item details are provided withone of the following possible propagation categories:

1. Propagate fully. The item details are passed down to be indexed atchild nodes at every level in the network below the node at which theLOP and LOR are similar in size.

2. Bounded-propagate. The item details are passed down to be indexed atchild nodes at every level until a more location-specific informationsource relating to the same subject-matter is indexed.

3. Normal. Such item details are not propagated down the indexingnetwork.

To give an example, information such as health and safety notices for abuilding may be defined with a locality of pertinence corresponding withthe whole area of the building, and a bounded-propagate property, suchthat the item details for the information source will be passed down theindexing network until a node covering a more specific locality, such asfor example a laboratory room, at which more specific health and safetyinstructions are required.

As a further example, notices regarding the opening times of a buildingmay be defined to have a locality of pertinence corresponding with thatof the building, and with a propagate fully property, so that such anotice is passed down to all nodes having localities of responsibilitywithin the building. On the other hand, high level information, such asthe location of the building in the context of a larger site, may bedefined with a locality of pertinence equal to that of the building, anda normal category, so that the information is only accessible at nodeshaving localities of responsibility which are relatively large.

Thus, the item details are propagated down the indexing network inaccordance with the specified propagation characteristics, steps 216 and218.

Next, in step 220, the node initially in receipt of the advertiserequest checks the localities of responsibility of its related nodeswhich have adjacent localities of responsibility, in order to determinewhether the LOP specified in the item details object intersects with theLOR or these adjacent nodes. If so, the node passes the advertiserequest to the adjacent nodes having intersecting LORs, step 222. Theseadjacent nodes then proceed to step 206 in the procedure illustrated inFIG. 7.

By repeating the procedure illustrated in FIG. 7 for each informationagent, the indexing network nodes are populated with item detailsobjects at the appropriate locational specificity.

Once the locality indexes of the indexing network is populated with itemdetails objects, the corresponding information sources may be accessedby personal agents in a location-specific manner in accordance with theprocedure illustrated in FIG. 8.

In order to access the indexing network, a personal agent transmits awhat-is-here? request to a gateway node in the indexing network withwhich the personal agent is set to interact, passing across datadefining a locality of interest (LOI) of the user for which the personalagent is acting. This locality is specified in the form of Cartesiancoordinates and parameters defining its size and shape.

The LOI of the user may be obtained in two ways. First, the user mayspecify a locality of interest via the terminal which the user iscurrently using, which is then passed on to the user's personal agent.This locality of interest is not necessarily related to the currentlocation of the user.

Secondly, an LOI may be derived from the tracking information receivedfrom a location updater device, via the corresponding location updaterobject, which provides the current location, speed and direction oftravel of the user. The LOI may be derived from each of theseparameters. In the case of a stationary user, the LOI is defined bydefault to be centred at the current location of the user, and to have asize equal to the locality of responsibility of the lowest level node inthe indexing network which covers the current location of the user,thereby to ensure access to the most location-specific information. Thestationary user may however request, via their current terminal, alocality of interest which is larger than this default LOI. The LOI ofthe stationary user is defined by default to have a circular outline.

In the case of a travelling user, the speed and directioncharacteristics signalled by the user's location updater device is usedto define the user's LOI differently. Namely, the LOI is centred at apoint offset from the current location of the user in the direction oftravel of the user, the distance increasing with the speed of travel ofthe user. The size of the locality of interest of the user is alsoincreased, to increase the level of generality of the informationderived from the indexing network. Finally, the shape of the LOI isaltered to extend the LOI to a greater extent in the direction of travelof the user then in a direction normal to the direction of travel.

The setting of the LOI of the user is carried out by the user's personalagent, which is continually updated with the user's current location,speed and direction of travel. In the case of a mobile location updater,such as the positioning signal receiver described above, a locationupdate message is transmitted to the personal agent when the usercarrying the location updater device moves a predefined thresholddistance since a previous location update. The personal agent proceedsto generate a what-is-here? request when the location of the user hasaltered a significant degree in relation to the size of the user'scurrent LOI.

Referring again to FIG. 8, on receipt of the what-is-here? request (step300), the receiving node applies an intersection function method to theLOI passed in the request, to determine whether the LOI intersects withthe LOR of the node, step 302. If there is no intersection, thereceiving node passes the request, along with the LOI of the request, toits parent node, step 304. Alternatively, if there is no intersectionthe node may compare the LOI with the LOR of any related adjacent nodes,passing the request to the best locality match, or passing the requestto the parent if no good match is found.

If the LOR and the LOI are found to intersect, the node proceeds toapply a similarity function, such as that described in relation to FIG.7, to determine whether the LOI of the user and the LOR of the node aresimilar in size, step 306.

If the LOI is found not to be similar in size in accordance with thesimilarity function applied, it is determined whether the LOR issignificantly larger, step 308. If so, the what-is-here? request, alongwith the specified LOI, is passed to each of the node's children whichhave an LOR intersecting with the LOI of the request, step 310.

Otherwise, the LOI is significantly larger in size than the LOR, and therequest is passed to the parent of the node, step 312. As the parentnode has a locality of responsibility which includes that of theupwardly passing node, the parent node, or other parent nodes higher upin the indexing network will be able to accept the what-is-here?request.

If the LOI of the user and the LOR of the node subject to the requestare similar in size, the receiving node further determines whether theuser's LOI intersects with the LORs of its related nodes which exist atthe same level in the indexing network, being either sibling nodes orcousin nodes, step 314.

If the LOI also intersects with the LORs of any adjacent nodes of equallevel, the receiving node transmits a what-is-here? request to each ofthe found adjacent nodes, step 316. These selected nodes return an itemdetails list consisting of the item details objects stored in theirlocality indexes, step 318. The receiving node then proceeds toconstruct a full item details list which includes the item detailsobjects from adjacent nodes having LORs which intersect with the LOIspecified in the original request, and the item details objects held inits own locality index, step 320.

If the node finds no adjacent nodes with LORs which intersect with theLOI of the user, the item details list to be transmitted consists ofitem details objects held solely in the receiving node's locality index.

Finally, the item details list is passed to the requesting personalagent, step 322.

On receipt of an item details list, the personal agent performs itsselection algorithm, using the user's preference data, in order tofilter out information objects representing information sources whichare considered to be of low potential interest to the user, and toproduce a shortlist of the remaining information objects which aretransmitted to the terminal agents of the terminal currently serving theuser, for the presentation of summary information to the user at theirterminal. On reviewing the summary information, the user is able toselect information sources which are of interest, and access informationheld in the information sources, by means of the system address for theinformation source specified in the corresponding information object nowheld in the terminal agent.

Information agents may be configured to act on behalf of terminalsaccessible within the geographical area covered by the indexing network.In this manner, a personal agent acting on behalf of the user may locateterminals, using a what-is-here? request, to identify terminalsaccessible in the immediate locality of the user. Furthermore, theinformation stored in the corresponding item details object representingthe terminal may specify the formats of data and transmission protocolsaccepted by the terminal, thereby allowing the personal agent to selecta terminal appropriate for a particular type or format of information tobe received by the user.

In addition to information agents and terminal agents, personal agentsmay also advertise within the indexing network. In order to do this,each personal agent is provided with an item details object to pass overto the indexing network for indexing at an appropriate level. The itemdetails object for the personal agent include the following data storageattributes:

1. The gateway node at which the personal agent is currently set tocommunicate with the indexing network.

2. The name of the user.

3. The current location of the user.

4. A locality of pertinence (LOP) for the user. This may be derivedeither from the locality of interest (LOI) currently set for the user,which is dependent on the current location, speed and direction oftravel of the user, and/or may include a “home” locality of pertinencefor the user. The locality is specified in the form of Cartesiancoordinates and parameters defining its size and shape.

5. An e-mail address for the user.

6. A current address for the personal agent.

7. A system address for an information source associated with the user,for example the URL of a personal Web page.

In order to index its information details object by locality, thepersonal agent transmits an advertise-in-locality request containing theitem details object to the personal agent is gateway node, which thenproceeds with the steps described in relation to FIG. 7 in order toindex the user's personal item details object within the indexingnetwork.

The indexing network is provided with a name index, consisting ofindividual databases distributed between the nodes of the network. Inorder to feature in the name index, an agent transmits anadvertise-by-name request to its gateway node.

FIG. 9 illustrates the procedure followed by a gateway node in receiptof an advertise-by-name request from an agent previously not indexed inthe system. Along with the request, the agent passes its current itemdetails object to the node. On receipt, step 400, the gateway nodestores the passed item details object, in its name index, step 402. Arequest to add a pointer, associated with a unique name for the agent,is passed to the parent node, step 404. The parent node adds thispointer to its name index, and then passes a similar request to itsparent node, which repeats the same until the root node is reached.

Thus, when an agent is advertised-by-name within the indexing network, areference to the gateway node will be present at a directly related nodeat each level in the indexing network above the gateway node, at whichthe agent's item details object is held.

In order to find an agent, the procedure illustrated in FIG. 10 isfollowed by a node requested to find the agent by name, step 500. Therequest need only contain the unique name of the agent.

If a reference to the agent identified by the unique name in thefind-by-name request is not present in the name index of the nodereceiving the request, step 502, it passes the request directly to itsparent, step 504, which proceeds from step 500.

Once a node in receipt of a find-by-name request does have a referenceto the identified agent in its name index, unless the node is thegateway node, step 506, it passes the request to the node immediatelybelow it identified by the pointer held in its name index, step 508.Once the request reaches the gateway node, it returns the system addressof the agent to the original requesting party, step 510.

FIG. 11 illustrates the way in which the name index feature operates. Inthe example shown, a first agent, Ag1 is set with a gateway node atlevel 2, node 114A. Second, third and fourth agents, Ag2, Ag3 and Ag4are set with gateway nodes at level 3, nodes 118D, 118A and 118E,respectively.

FIG. 11 illustrates each of agents Ag1, Ag3 and Ag4 attempting to find areference to agent Ag2 in the network. Agent Ag3 is set with a gatewaynode which is a sibling node of the gateway node which agent Ag2 is setto, and the find-by-name request transmitted by agent Ag3 to its gatewaynode is propagated only to its parent node, at which a pointer to agentAg2 will be found in the name index of the node.

The find-by-name request transmitted by agent Ag1 will be passed fromits gateway node, node 114A, to the root node 110, at which point apointer to the item details object of agent 2 is present in a nameindex.

A find-by-name request transmitted by agent Ag4 to its gateway node,node 118E, will be passed on by that node, and the parent node 114A, inturn, which each do not have references to agent Ag2 within their nameindexes. The find-by-name request is then passed down from the root node110 in accordance with the pointers stored in the name indexes of thehandling nodes, until it reaches the gateway node of agent Ag2, whichreturns the system address of agent Ag2 to agent Ag4.

Thus, each of the categories of agent which interact directly with theindexing network, being the information agent, the personal agent andthe terminal agent, are set to communicate with a particular gatewaynode of the indexing network. As the indexing network consists of adistributed network which extends over a plurality of distributedcomputing nodes, such as the DPE Servers DS described in relation toFIG. 1, and since the agents in question may be mobile, a procedure isdefined whereby an agent may move and alter the gateway node with whichthe agent is set to communicate.

The gateway node moving procedure may be initiated either by the agentitself or by a node of the indexing network. For example, if an agentdetects that response delays in communications with the currently setgateway node have become excessive, the agent may initiate a move to anode having a locality of responsibility which is closer to, orintersecting with, the locality of pertinence or locality of interest ofthe agent. Alternatively, if a particular node of the indexing networkdetects overloading, it may instruct certain of the agents currentlycommunicating with the node as a gateway node to move to an adjacentnode.

FIG. 12 illustrates the steps carried out by the gateway node of anagent on receipt of a move-node request from the agent, step 600.

The gateway node first determines whether the LOI or LOR of therequesting agent intersects with the LOR of an adjacent node, step 602.If no such intersection exists, the gateway node passes the request toits parent node, step 604.

Otherwise, the gateway node passes the move-node request to the mostappropriate adjacent node having an LOR which intersects with the LOP orLOI of the requesting agent (step 606).

Referring to FIG. 13, when a particular node receives a move-noderequest for an agent from another node, step 700, the receiving nodefirst determines whether the agent specified in the move-node request isadvertising within the indexing network by name, step 702. Thisinformation will be found in the item details object passed with themove-node request, which item details object contains a flag indicatingwhether or not the agent is advertising-by-name.

If the agent is advertising-by-name, it is necessary to ensure theconsistency of the name indexes when an agent is moving. Accordingly,the receiving node places the item details object within its own nameindex, step 704. The receiving node must also initiate a process wherebythe name indexes of other nodes are updated, step 706. The receivingnode follows the following rules when updating the name indexes of othernodes:

1. If the move-node request is received from a parent node, no updatingis required.

2. If the move-node request is received from a child node, the receivingnode transmits a remove-by-name request to the sending node, whichresults in the deletion of the corresponding item details object fromthe sending node's name index.

3. If the move-node request is received from a sibling node, thereceiving node transmits a remove-by-name request to the sending node,and transmits a request to its parent to update the pointer in its nameindex.

4. If the move-node request is received from a cousin node, thereceiving node transmits a remove-by-name request to the sending node,and transmits a request to its parent node to add a pointer in its nameindex and to propagate the request upwards until a previous entry forthe agent is found, and thence to propagate a request downwards toremove all previous pointers which are now incorrect.

5. If the move-node request is received from an uncle node, thereceiving node transmits a remove-by-name request to the sending node.The receiving node also transmits an advertise-by-name request itsparent nodes including a request to add and update name index pointerswhich is propagated up to and including N+1 nodes above the receivingnode's location, where N is the depth of the uncle minus the depth ofthe receiving node.

6. If the move-node request is received from a nephew node, a request issent to the node's parent to update the pointer in the parent node'sname index. A remove-by-name request is transmitted to the sending node,including a request for the removal of pointers from the name indexes ofthe sending node's parents to a level of N above the sending node whereN is the depth of the nephew node minus the depth of the receiving node.

Once the name indexes of the other nodes in the network are updated, thereceiving node applies the intersection function to determine whetherthe locality passed in the request intersects with the LOR of thereceiving node, step 708. This is not necessarily the case, if therequest was received from a child node. If no intersection is present,the move-node request is passed on to a more appropriate node, which isdetermined as per step 602 described in relation to FIG. 12, step 710.

If an intersection is found to occur, the receiving node applies a sizesimilarity function to determine whether the locality passed in themove-node request is similar in size to its own LOR, step 712. If not,the node determines whether its LOR is significantly larger than thepassed locality, step 714, and if so it passes the move-node request toa child node with an intersecting LOR, step 716. Otherwise, themove-node request is passed upwards to the parent node, step 718.

Finally, if the node receiving the move-node request is an appropriategateway node, the requesting agent is informed of the system address ofthe new node with which the agent is now set to communicate, step 720.

What is claimed is:
 1. A method of storing and/or retrievinglocation-based information, the method comprising: storing, in adistributed network of data storage devices accessible simultaneouslyfrom a plurality of remote user terminals, data defining a plurality offirst localities in relation to which information storage is accessible;and selecting ones of said first localities to represent secondlocalities for which information is to be stored and/or retrieved suchthat: i) said first and second localities bear a predeterminedlocational relationship; and ii) said first and second localities bear apredetermined relationship in size.
 2. A method according to claim 1,wherein said first localities are selected such that said first andsecond localities share at least one geographical location.
 3. A methodaccording to claim 1, wherein said first localities are selected suchthat said first and second localities are similar in size.
 4. A methodaccording to claim 1, wherein said data defines access nodes whichinclude a node representing a relatively large locality and one or morenodes representing one or more relatively small localities which overlapsaid relatively large locality.
 5. A method according to claim 4,wherein a plurality of said nodes representing relatively smalllocalities form divisions of said relatively large locality.
 6. A methodaccording to claim 4, wherein said nodes are interlinked in a networkstructure.
 7. A method according to claim 6, wherein said networkstructure is a hierarchical structure.
 8. A method according to claim 7,wherein said nodes are interlinked in parent/child relationships.
 9. Amethod according to claim 8, wherein said interlinking comprises a nodeholding a reference whereby the related node may be accessed.
 10. Amethod according to claim 7, wherein said nodes are interlinked insibling relationships.
 11. A method according to claim 7, wherein saidnodes are interlinked in uncle/nephew relationships.
 12. A methodaccording to claim 7, wherein said nodes are interlinked incousin/cousin relationships.
 13. A method according to claim 4,comprising altering a distribution of said nodes amongst said datastorage devices.
 14. Apparatus for storing location-based information inaccordance with the method of claim
 1. 15. A method according to claim1, wherein said network of data storage devices comprises a plurality ofservers interconnected by data links and forming a distributedprocessing environment.
 16. A method of storing location-basedinformation, the method comprising: defining, in a distributed networkof data storage devices accessible simultaneously from a plurality ofremote user terminals, a plurality of data access nodes each of which isresponsible for a predefined locality, said plurality of nodes includinga higher level node responsible for a larger locality and lower levelnodes responsible for smaller localities which overlap said largerlocality, indexing references to information sources containinglocality-specific information at said data access nodes, differentinformation source references being indexed at said higher level nodethan at said lower level nodes; and transmitting said references fromsaid indexing nodes on request.
 17. A method according to claim 16,wherein at least one information source reference is commonly indexed atsaid higher level node and said lower level nodes.
 18. A method ofstoring location-based information, the method comprising: defining, ina distributed network of data storage devices accessible simultaneouslyfrom a plurality of remote user terminals, a plurality of data accessnodes each of which is responsible for a predefined locality; indexingreferences to information sources containing locality-specificinformation at said data access nodes, one or more of such referencesbeing repeatedly indexed at different of said nodes; and transmittingsaid references from said data access nodes on request.
 19. A method ofretrieving information for presentation to a user, the methodcomprising: defining a locality of interest to the user in dependence onboth a location of the user and a speed of travel of the user; andselecting, in a distributed network of data storage devices accessiblesimultaneously from a plurality of remote user terminals, informationsources from which locality-specific information may be retrieved, onthe basis of the defined locality of interest.
 20. A method according toclaim 19, wherein the extent of the locality of interest of the user isaltered in dependence on the speed of travel.
 21. A method according toclaim 20, wherein the extent of the locality of interest increases withthe speed of travel.
 22. A method according to claim 19, wherein thelocality of interest is altered in dependence on the direction of travelof the user.
 23. A method according to claim 19, comprising derivingparameters relating to the travel of the user from a positioning signalreceiver travelling with the user.
 24. Apparatus for storinglocation-based information, said apparatus comprising a distributednetwork of data storage devices accessible simultaneously from aplurality of user terminals and defining data access nodes which arereferentially interlinked, each said data access node being provisionedwith a locality for which it is responsible, and means for comparing thesize of an input locality in relation to which information storage is tobe accessed and a locality for which the access node is responsible. 25.Apparatus according to claim 24, wherein said apparatus isreconfigurable by the addition of, or the removal of, one or more ofsaid data access nodes, so as to transfer responsibility from or to oneor more other nodes with localities of responsibility sharing at leastone geographical location.